Skip to main content

구름 Commit - 클린코드

클린 코드 다시보기

2023.11.22

클린코드 논란

  • 클린 코드를 추구하면 주석 작성 X?
  • 코드가 클린하면 리팩토링 필요가 없지않나?
  • 테코가 없어도 되지않냐?
  • 클코로는 일정을 지킬 수 없다?
  • 클코 원칙에 위배되어 리뷰 불가하다?

단점

  • 오버엔지니어링을 하려한다
  • 레거시 코드 무시
  • 주석 경멸
  • 패턴 남용
  • 엄격한 규칙 준수
  • 짧은 함수와 클래스에 대한 지나친 강조
  • 완벽주의
  • SOLID 원칙 오용

클린코드 구성

  1. 원칙.패턴.연습
  2. 사례연구
  3. 휴리스틱 - 학습된 감각에 기반하여 판단

OOP를 바라보는 관점

  • 명사 중심

    • 데이터를 중심으로 함수 캡슐화
    • OOAD와 자료구조로써의 객체 관점
    • -er로 끝나는 이름 금기
  • 동사 중심

    • 객체를 컴퓨터로 보는 관점
    • 메시징과 객체간 협력 강조
  • 객체 중심

    • 큰 객체/ 세부는 타 프로그래밍 스타일 사용
    • 대부분 주요 OOP 언어
  • 객체 보조

    • 자료구조 또는 추상 자료형 관점 객체 활용

전통적인 데이터와 데이터 변환 분리 방식

  • OOP의 한계 : 비지터 패턴
  • OO의 데이터-행위 캡슐화 반대
    • DOP 제안 - 자바 아키텍트 브라이언 게츠
      • 단순한 일은 단순하게!

기회주의 리팩토링

  • 시간 날때마다 틈마다 리팩토링해라..?